23

» WarCraft 3 / Два вопроса

Похожие вопросы:

ответ
  1. Берем War3ModelEditore->Windows->Camera Manager->Camera->Edit. Еще проще вручную в окне подобрать нужный вид и тогда в CameraManager->Create New From Current View, а прошлую камеру удалить.
  1. Берем MdlVis->F3(Sequence Manager)->Выбираем анимацию->вкладка Bones-> выбираем главную кость и поворачиваем через Rotate в анимациях портрета так, как нужно.
ответ
Спецэффект не появляется, потому что ты его сразу удаляешь. Энергетические стены - это ворота. Их лучше ставить сразу на карте, открывать и хайдить их в начале игры, а в нужный момент показывать и закрывать.
ответ
Он лежит на случай если игре необходим данный реф. В РО ты мог иногда видеть необходимое приложение и варианты small, medium и large. Также по возможности спецэффекты и эффекты способностей могут к ней крепиться.
А collission насколько я помню отвечает за выделение или за столкновение летающих юнитов. На всякий случай оставляй, а то мало ли, да и места много не просит.

23

» WarCraft 3 / Координаты

Похожие вопросы:

ответ
Mdlvis, там графический редактор UV-карты
ответ
в основе полярных координат лежит прямоугольный треугольник который проходят в школе
тебе нужно найти координаты второго угла зная первый угол, его координаты и длину гипотенузы
формула такова
float x0,y0; // координаты угла
float angle; // угол
float hypot; // гипотенуза
float newX=x0+hypot*Cos(angle); // координата x второго угла
float newY=y0+hypot*Sin(angle); // координата y второго угла
координаты 2 точки используются если угол не известен (например нам нужно двинутся на 150 в направлении какого либо юнита)
тогда вместо угла мы вычисляем синус и косинус используя определения синуса и косинуса (узнаешь когда окончишь 6 класс или можешь почитать их учебник)
ответ
DrTema, пусть в чат вводится строка вида -move x,y
берём подстроку(назовём её s) с 6 позиции до конца строки
ищем в s знак , и запоминаем позицию знака (назовём её i)
тогда берём подстроку от s с 0 позиции до i
это будет наша координата x
а подстрока от s с i+1 до конца подстроки s это число y
на гуи это будет выглядеть громоздко
на джасс сделать намного проще
EnergyFrost, я бы заменил то что у тебя в ретурне на
return i<StringLength(s)-1;
ибо входят координаты в рект или нет это уже проблемы того кто юзает систему
а вот были ли считанны данные или нет это уже важно
ответ
Да я как-то тоже столкнулся с такой проблемой и вот так решил, за основу взял не свою созданную способность. В карте всё наглядно показано, вот только на ГУИ.
ответ
Сделал так. Использую только MoveLocation..., можно даже вообще не удалять переменную точки а лишь двигать её, как курсор мыши, и указывать молниеносно и невидимо для всех триггеров одной точкой что и куда им делать. Все стрелы полетели как надо, в россыпь. Хотя когда Я делаю удаление точки в конце, это не отражается на следующем вызове триггера, так что можно и удалять, главное не удалять когда она ещё нужна до завершения триггера. Проверил на Хендлах, один Хендл создаётся один раз, чтобы объявить эту точку, а то что двигаю в цикле никак не прибавляет Хендлы. Получилась точка-указатель, как курсор мыши, и одной хватает, ведь Warcraft однопоточный. Оставлю ещё вопрос открытым на несколько часов, может Я не прав и кто-то меня поправит.

23

» WarCraft 3 / Аттач

Похожие вопросы:

ответ
KvarK99_, посмотри в заклинаниях (не способностях) Панцирь с шипами. Там все ясно станет)
ответ
~8gabriel8:
quq_CCCP, опа, я раньше почему-то в способности это пытался найти.
DarkHammer, я поставил так, у меня работает оттуда Пламя феникса.
ответ
а все, аура замедления торнадо

23

» WarCraft 3 / Юнит и принадлежность

Похожие вопросы:

ответ
Добавлять бафы триггерами, на сколько я знаю, нельзя, но можно снимать.
Чтобы повесить баф на юнита, нужно:
  • Создать способность которая повесит нужный баф
  • Создать дамми юнита (с абилкой москит) и дать ему эту способность
  • В нужный момент создавать этого юнита и кастовать им по нужной цели
При инициализации карты, создать и удалить всех юнитов которые будут потом создаваться триггерами, чтобы избежать секундных фризов.

23

» WarCraft 3 / Вопрос по Jass

Похожие вопросы:

ответ
Чтобы было норм читать, надо хотя бы выделять содержимое каждого блока (типа function/endfunction, if/endif, loop/endloop) табуляцией. Если блок внутри блока, то двойная табуляция, и т. д.
В vJASS и cJASS не стоит использовать одновременно C-подобный и Turing-подобный (стандартный JASS) синтаксис.
А если ты неправильно поставишь пробелы, запятые или кавычки, тебе об этом скажет парсер =)
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
в структуре глобальные переменные?
ты хоть знаешь что такое структура и как их использовать?
если используешь структуру то нафига тебе глобальные переменные и параллельные массивы
короче читай статьи про структуры
что это такое, зачем они нужны и как их использовать

23

» WarCraft 3 / Способность, зависящая от времени суток

Похожие вопросы:

ответ
нашёл человека
ответ
Полагаю, что подобную тему стоит создать в блоге, а не в разделе вопросов и ответов.
ответ
сколько раз повторять
это вопросы/ответы а не поиск людей/сделайте за меня
пишите в блог либо в соответствующие темы

23

» WarCraft 3 / Зеленый квадрат вместо иконки

Похожие вопросы:

ответ
MadWay, нет. Обе иконки (как активная так и пассивная) могут иметь одну общую неактивную (DIS-иконка), если у них общее название.
Например, у тебя есть активная и пассивная иконки одной способности Headshot
ReplaceableTextures\CommandButtons\Headshot.blp - вот путь до активной иконки
ReplaceableTextures\PassiveButtons\Headshot.blp - вот до пассивной
ReplaceableTextures\CommandButtonsDisabled\DISHeadshot.blp - и до неактивной
Префиксы BTN, PASBTN в отличии от DIS не имеют никаких функций и фактически являются частью имени

23

» WarCraft 3 / Вопрос по Jass

Похожие вопросы:

ответ
Чтобы было норм читать, надо хотя бы выделять содержимое каждого блока (типа function/endfunction, if/endif, loop/endloop) табуляцией. Если блок внутри блока, то двойная табуляция, и т. д.
В vJASS и cJASS не стоит использовать одновременно C-подобный и Turing-подобный (стандартный JASS) синтаксис.
А если ты неправильно поставишь пробелы, запятые или кавычки, тебе об этом скажет парсер =)
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
1)Нужно ли при создании на джассе в конце обнулять/удалять что-то как при создании на ГУИ типо set u = null и т.д.?
Да нужно, но далеко не все. Чекни статьи, там про это расписано подробно.
2)Как видно на скрине юниту даются способности на 10 сек, можно ли в одной строчке это как то написать, а не писать каждый скилл в новой строке? Попытался сделать через , выдало ошибку.
Нет, только по одному. И TriggerSleepAction я бы использовать не стал, вместо них я бы заюзал таймеры.
3)Слышал про при конвертации в текст остаются пару лишних строк в триггере, абсолютно ненужные я удалил(Которые были при создании на ГУИ, скрин 2), нужно ли еще что-то удалять?
Не совсем понял вопрос, уточни о чем ты?

23

» WarCraft 3 / Способность

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / MdlVis

Похожие вопросы:

ответ
Редактор анимаций - скелет - прикрепить выделенные вершины к кости Head.
А лучше статьи почитай по мдлвизу.
А ещё лучше - сам попытайся разобраться.
ответ
war3.mpq
war3x.mpq
доставать mpq editor
на сайте есть
Даже более пошаговая инструкция:
  1. Открываешь редактор варкрафта
  2. Смотришь в редакторе объектов путь к модели (это надо включить там показать значения переменных или что-то там, тут пусть кто-то уточнит, если нужно, я наизусть не помню, хотя постоянно переключаю, как-то так Units\Creeps\StoneGolem\StoneGolem.mdx)
  3. Закрываешь редактор (а то mpq не откроется)
  4. xgm.guru/p/xm/ladikmpq скачиваешь это, если еще не, распаковываешь
  5. открываешь war3.mpq, ищешь там по пути модель в соответствующих папках
  6. если ее нет, открываешь war3x.mpq и ищешь там
  7. нажимаешь Export
  8. выбираешь куда вынуть
  9. подтверждаешь
все, открываешь папку, куда оно того и там модель и текстура
текстуру можно фотошопить, а модель мдлвисить как душа пожелает
/
инструкция может быть чуть не точной, т. к. сочинялась на ходу
ответ
скорее всего вершины не пересвязал...
ответ
У меня всё работает.
ответ
UrsaBoss:
Крч похоже что программа не коректно работает на виедоус 10 или с wc3 версии 1.29. А там уже и 1.30 не за горами ._.
UP: Необходимые файлы для полной работы Mdlvis я нашел в этом треде.
А вот сами файлы.

23

» WarCraft 3 / Нужно сделать способность

Похожие вопросы:

ответ
  1. В кампании орды за Рекксара медведь призывается без ограничения по времени.
  2. Любая способность призыва, в которой указать количество призываемых юнитов = 0.
ответ
Steal nerves:
Ну в идеале только канал пробивал иммунитет к магии (если понял о чем идет речь). Иначе будет писать "Не удалось натравить заклинание". Если говорим не про АОЕ-шные скилы
есть некоторые скилы, которые накидывают дебаффы или наводят на него (например перст боли, но урон иммунному не наносится. больше свожу к выводу, что это магический урон) ссылка
quq_CCCP, что значит высшая? эта та, которая 6 уровне?
есть в константах
"Баланс: невосприимчивость к магии защищает от высших заклинаний" - Определяет, будет ли невосприимчивость к магии защищать от заклинаний, которые становятся доступны для изучения на 6-м (по умолчанию) уровне. По умолчанию константа равна "Нет".
это нашел в интернете. Похоже не все геройские абилки работают, а только "высшие". Все понял:
Любая высшая способность ( геройская, требуемый уровень выше 1 ).
ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.

23

» WarCraft 3 / Вопрос по Jass

Похожие вопросы:

ответ
Чтобы было норм читать, надо хотя бы выделять содержимое каждого блока (типа function/endfunction, if/endif, loop/endloop) табуляцией. Если блок внутри блока, то двойная табуляция, и т. д.
В vJASS и cJASS не стоит использовать одновременно C-подобный и Turing-подобный (стандартный JASS) синтаксис.
А если ты неправильно поставишь пробелы, запятые или кавычки, тебе об этом скажет парсер =)
ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
1)Нужно ли при создании на джассе в конце обнулять/удалять что-то как при создании на ГУИ типо set u = null и т.д.?
Да нужно, но далеко не все. Чекни статьи, там про это расписано подробно.
2)Как видно на скрине юниту даются способности на 10 сек, можно ли в одной строчке это как то написать, а не писать каждый скилл в новой строке? Попытался сделать через , выдало ошибку.
Нет, только по одному. И TriggerSleepAction я бы использовать не стал, вместо них я бы заюзал таймеры.
3)Слышал про при конвертации в текст остаются пару лишних строк в триггере, абсолютно ненужные я удалил(Которые были при создании на ГУИ, скрин 2), нужно ли еще что-то удалять?
Не совсем понял вопрос, уточни о чем ты?

23

» WarCraft 3 / Триггерный автокаст?

Похожие вопросы:

ответ
речь об активных орб-эффектах, я так понимаю? Потому что "нормальные" заклинания ловятся всегда.
Типа копья козы или аркан-орба дестра ты делаешь?
Danil30:
событие - применяет способность
юзай "приводит способность в действие"
ответ
Пассивки в книге заклинаний работают, даже если запретить доступность самой книги для игрока.Так что да.
ответ
8gabriel8, стандартные порталы как раз включаются триггером, так же триггерно им можно назначать области телепорта, так же они не ломают карту путей.
Насчет упираются в здание, карту путей ставь от портала, физ размер в 0.

23

» WarCraft 3 / Вопрос по оптимизации способностей

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
SetUnitPosition довольно тяжелая операци, юзайте SetUnitX\Y в конце полета юзай SetUnitPosition для того чтобы юнит не залетел в непроходимое место.
Фильтр просто ужас, ну кто так фильтры делает?
Проверка на 'Aloc', я в ужасе на кой черт проверять на дамми если GropEnumUnitsInRange\Rect не выделяет москитов, тока EnumOfPlayer может пикнуть москитов, остальное не пикает их, на то они и москиты...
Вот как выглядит нормальный фильтр без локалок и прочего
function EnemyFilter takes nothing returns boolean
    set bj_lastFilterUnit = GetFilterUnit( )
    return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not( IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MAGIC_IMMUNE ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MECHANICAL ) or IsUnitInvulnerable( bj_lastFilterUnit ) )
endfunction
UnitDamageTargetEx - красиво но нафиг ненужно обводить в отдельную функцию с тучей аргументов + жутко неудобно, 100500 аргументов у функции и фиг знает за что какой от вечает, прямо так UnitDamageTarget, без отдельной функции.
Туча констант, тоже хорошо тока длят наработок, на деле ставь конкретные значения или юзай Difine vjass'a.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.

23

» WarCraft 3 / JNGP

Похожие вопросы:

ответ
Думаю, тебе стоит подробней описать проблему в этом ресурсе.
ответ
Я удалил MPQ Editor в папке bin, потому вылазила ошибка.
ответ
Можно обновить TESH и будет такой же.

23

» WarCraft 3 / Неуязвимость и ИИ

Похожие вопросы:

ответ
Не берите вы эти ульты для основы своих скиллов, они сделаны через одно место лиж бы работали в капмании, а там дальше хоть потоп.
Сделайте заклинание из канала, а юнитов вокруг делайте неуязвимыми.
ответ
Делал как-то спелл, для реализации которого пришлось понять как полностью блокировать любое количество урона.
ответ
8gabriel8, ты никак не отследишь тип атак и тип урона. Только мемхак или костыли, вроде у футмана абилка А - значит у него физический урон...
ответ
Steal nerves:
да. Сделать не зданием
здание + неуязвимость = убирает полосу
ответ
Ох, без Jass тут не обойтись. Тебе придётся резать константы урона относительно типу защиту. Создавать внутренние константы в скрипте, которым тебе придётся настраивать перебой защиты пол кол-ву наносимого урона. А так же вносить каждого юнита в БД. Вдобавок сделать структуру или массив с логикой получения урона от опр. типа атаки. В общем тут жесткий геморр. А так, с GUI тут особо не повоюешь. Ну иначе быть не может..

23

» WarCraft 3 / Строка

Похожие вопросы:

ответ
Эта функция может читать строки из текстовиков и wts файла строки своего региона, она слупочна. Вспомни сколько грузятся карты без оптимизации, как долго может открываться вкладка - задания.
ответ
Любая строка ограничена, 256 символов латиницы и вдвое меньше символов кирилицы насколько я помню.
Никак не лечится, краткость сестра таланта и все такое.
ответ
нет

23

» WarCraft 3 / Изменить освещение

Похожие вопросы:

ответ
Pandemic, вот тема похожего вопроса.
ответ
Это же Фелвуд? Возможно сбились настройки функции SetDayNightModels( ), которая прописана в main.
native SetDayNightModels takes string terrainDNCFile, string unitDNCFile returns nothing